Computing clusters and other distributed computing systems have a number of requirements that go well beyond the requirements of stand alone computing systems. Therefore, when components are developed for use in clustered or distributed computing environments, it is typically necessary and desirable to test the component in such an environment. By way of example, if software (such as an application program, a cluster resource or a database) or hardware (such as a storage device, a processor or an interface card) is developed for use in a computing cluster, it is generally desirable to test such components in the cluster environment before releasing such components for sale.
To facilitate the testing of computer related components, test software (e.g., test programs or test suites) will typically be written that are designed to exercise the component to be tested in an environment similar to that in which the component will be used. In the context of clustered computing, this typically requires either that the author of the test software know a fair amount about the characteristics of the specific cluster that will be used to test the component, or that the engineer running the tests spend a significant amount of time installing, configuring and/or running the test software in order to execute the selected tests. Consequently, the testing of computing cluster related components is often very expensive and time consuming. Furthermore, in many cases, duplicate work is done since developers and engineers may be unaware of prior tests that have been performed for similar or identical computing cluster environments and components.